package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
   * @ClassName: WmsGoodsMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author JaneLiu
   * @Date Wed Sep 06 17:06:56 CST 2017
   */
   public interface WmsGoodsMapper extends BaseDao<WmsGoods> {

   /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsGoods") WmsGoods entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsGoods") WmsGoods entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsGoods>
    */
    public List<WmsGoods> baseSelectPage(@Param("WmsGoods") WmsGoods entity);

    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsGoods baseSelectByPrimaryKey(@Param("id") String id);
    /**
     * 查询（根据主键ID查询货品编辑内容）
     * @param id 主键ID
     * @return User
     */
    public WmsGoods baseSelectByGoodsEdit(@Param("id") String id);

    /**
     * 查询（根据货主ID查询货主对应的货品）
     * @param sshzid 货主ID
     * @return User
     */
    public List<WmsGoods> baseSelectGoodsBySshzid(@Param("sshzid") String sshzid, @Param("hpid") String hpid, @Param("bh") String bh);
   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsGoods> idList);

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsGoods") WmsGoods entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsGoods") WmsGoods entity);



    /**
     *货品编号查重 （匹配有值的字段）
     * @param bh 货品编号
     * @return
     */
    public Integer baseSelectGoodsBh(@Param("bh") String bh, @Param("id") String id);
    /**
     *货品编号最大值 （匹配有值的字段）
     * @return
     */
    public String baseSelectGoodsBhMax();
    /**
     *查询（根据货品ID查询保质期）
     * @param id 货品id
     * @return
     */
    public String seachGoodsBzqById(@Param("id") String id);
    /**
     *查询未被货品占用的库位组
     * @param ckid 仓库ID
     * @param sshzid 所属货主ID
     * @return
     */
    public List<WmsLibrarypositiongroup> seachLibrarypositiongroup(@Param("id") String id, @Param("sshzid") String sshzid, @Param("ckid") String ckid, @Param("mc") String mc);
    /**
     *查询库位组信息 根据库位组Id
     * @param id 库位组ID
     * @return
     */
    public WmsLibrarypositiongroup selectByGroupId(@Param("id") String id);
    /**
     *查询货主信息 _Jane
     * @param id 货主Id
     * @return
     */
    public WmsOwner seachOwnerXx(@Param("id") String id, @Param("ckid") String ckid);
    /**
     *查询库位类型信息 _Jane
     * @param lx 包装类型
     * @return
     */
    public List<SysDictionary> seachKwlx(@Param("lx") String lx);
    /**
     *查询包装是否被绑定 _Jane
     * @param bzmc 包装名称
     * @return
     */
    public Integer seachBzBdqk(@Param("bzmc") String bzmc);
    /**
     *查询库位是否存在 _Jane
     * @param kwmc 库位名称
     * @return
     */
    public Integer seachKwmc(@Param("kwmc") String kwmc);
    /**
     *查询库位租是否存在 _Jane
     * @param kwzmc 库位组名称
     * @return
     */
    public Integer seachKwzmc(@Param("kwzmc") String kwzmc);
    /**
     *查询货品是否存在 _Jane
     * @param bh 货品编号
     * @return
     */
    public Integer seachHpCz(@Param("bh") String bh);
    /**
     *查询货品种类是否存在 _Jane
     * @param zlmc 货品种类名称
     * @return
     */
    public Integer seachHpzl(@Param("zlmc") String zlmc);
  /**
   *查询质检规则是否存在_Jane
   */
    public Integer countZjgzmc(@Param("mc") String mc);
 /**
     *查询货品种类ID _Jane
     * @param zlmc 货品种类名称
     * @return
     */
    public WmsGoodsType seachHpid(@Param("zlmc") String zlmc);
    /**
     *查询包装ID _Jane
     * @param bzmc 包装名称
     * @return
     */
    public WmsPacking seachBzid(@Param("bzmc") String bzmc);
 /**
  *查询货品Id根据Bh
  */
  public WmsGoods seachHpidBybh(@Param("bh") String bh);
 /**
  *查询库位Id
  */
  public WmsLibraryPosition seachKwidBymc(@Param("kwmc") String kwmc);
 /**
  *查询质检规则Id
  */
  public WmsQualityTesting seachzjgzidBymc(@Param("mc") String mc);
 /**
  *查询库位组信息
  */
  public WmsLibrarypositiongroup seachKwzidBymc(@Param("kwzmc") String kwzmc);
 /**
  *查询供应商信息
  */
  public WmsOwnerSupplier seachGysidByBh(@Param("bh") String bh);
    /**
     * 查询库位名称
     */
    public String selectKwmcByKwid(@Param("kwid") String kwid);
    /**
     * 查询质检规则名称
     */
    public String seachZjgzmc(@Param("zjgzid") String zjgzid);
    /**
     * 根据编号获取货品数量
     * @return
     */
    public Integer getCountByBh(@Param("bh") String bh);
}
